package com.vcc.service.service;


import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.service.IService;
import com.vcc.data.entity.CardType;
import com.vcc.service.boss.request.card.*;

import java.util.List;

public interface CardTypeService extends IService<CardType> {


    CardType addCard(BossCardTypeCreateRequest bossCardTypeCreateRequest);


    Page<CardType> paging(Page<CardType> pageable,
                          String channelName,
                          String sectionNo,
                          Integer status,
                          String secnes,
                          String type);

    List<CardType> listAll(String channelName, String sectionNo);



    Page<CardType> paging(Page<CardType> pageable,
                          String sectionNo,
                          Integer status,
                          String account,
                          String secnes);

    List<CardType> listBySectionNo(String sectionNo);

    CardType getById(Long id);

    Boolean updateInfo(BossCardTypeUpdateRequest cardDto);

    Boolean updateInfo(BossCardTypeBatchUpdateRequest cardDto);

    CardType addCardType(BossCardTypeCreateRequest bossCardTypeCreateRequest);

    CardType getBySectionNo(String sectionNo);

    List<CardType> listByChannelName(String channelName);

    List<CardType> listByChannelNameAndType(String channelName,String type);

    Boolean updateStatus(BossCardTypeStatusUpdateRequest updateCardStatusDto, Long userId);

    Boolean updateAdminRemark(BossCardTypeRemarkUpdateRequest bossCardTypeRemarkUpdateRequest, Long userId);

    Boolean updateSort(BossCardTypeSortUpdateRequest bossCardTypeSortUpdateRequest, Long userId);

    Boolean updateSort(BossCardTypeSortBatchUpdateRequest updateCardSortDto, Long userId);

    List<CardType> listByStatus(Integer status);


    List<CardType> listBySectionNoAndStatus(String sectionNo, Integer status);
    List<CardType> listBySectionNoAndStatus(String sectionNo,String channelCode, Integer status);


}
